#pragma once

#include "LMath.h"
#include "LTypes.h"

namespace ln
{
    class LDragAssist
    {
    public: 
        LDragAssist();

        void SetIsStartPointYDown(bool isDown);

        void SetStartPoint(int x, int y);
        void SetStartPoint(const ln::PointInt &p);

        void MouseDown(int x, int y);
        void MouseDown(const ln::PointInt &p);
        
        void MouseUp();

        ln::PointInt MouseMove(int x, int y);
        ln::PointInt MouseMove(const ln::PointInt &p);


        bool IsMouseDown() const;

    private:

        ln::PointInt m_down_point;
        ln::PointInt m_start_point;

        bool is_start_point_y_down;

        bool m_is_mouse_down;
    };

}





